package zmee.pur.src.formplugin;

import com.alibaba.druid.util.StringUtils;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.ListShowParameter;
import zmee.util.ShowFormUtils;

import java.io.IOException;
import java.util.EventObject;

/**
 * @Author: zyj
 * @Date: 2023/6/26 14:13
 * @Description: 供应商: 增加回标数据按钮查询回标详情信息，供展示
 */
public class SrmSupplierReplyDetailBillPlugin extends AbstractBillPlugIn {

    // 招标数据按钮标识
    private static final String BUTTON_KEY_REPLYDATA = "zmee_replydata";

    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        // 监听招标参与情况工具栏
        this.addItemClickListeners("zmee_replydetailtoolbar");
    }

    @Override
    public void itemClick(ItemClickEvent evt) {
        super.itemClick(evt);
        if (StringUtils.equalsIgnoreCase(BUTTON_KEY_REPLYDATA, evt.getItemKey())) {
            try {
                // 内嵌基本信息
                this.showEmbedPage("src_bidopensupplier", "zmee_replydetaildata");
                this.getView().updateView();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 内嵌页面
     *
     * @param pageNumber 页面标识
     * @param targetKey 加到当前页面哪个容器下
     * @throws IOException
     */
    private void showEmbedPage(String pageNumber, String targetKey) throws IOException {
        ListShowParameter contactParameter = ShowFormUtils.inContainerListParameter(pageNumber, targetKey);
        // 获取正式供应商
        DynamicObject supplier = (DynamicObject)this.getModel().getValue("supplier");
        if (supplier == null) {
            this.getView().showTipNotification("请先填写正式供应商!");
            return;
        }
        // 获取正式供应商ID
        Long id = (Long) supplier.get("id");

        // 设置自定义参数 表示从供应商界面跳转的回标详情
        contactParameter.setCustomParam("state", "supplier");
        contactParameter.setCustomParam("supplierId", id);
        // 设置列表显示标题
        contactParameter.setCaption("招标数据列表");

        this.getView().showForm(contactParameter);
    }
}
